<!--
 * @Author: BlueSkyDream
 * @Date: 2023-04-27 14:58:13
 * @LastEditTime: 2023-04-27 15:41:52
 * @Description: 展示数组非破坏性方法,也即是方法调用后不会影响原数组,会返回一个新的数组
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    const arrList = [1,2,3,4,3,4,2]
    /* 
      1. Array.isArray()
        - 用来检查一个对象是否是数组
        demo:
          - console.log(Array.isArray([{name:'ddd'}])); 
          - console.log(Array.isArray({name:'ddd'}));
      2. at()
        - 可以根据索引获取数组中的指定元素
        - at可以接收负索引作为参数(从后往前)
        demo :
          - console.log(arrList.at(-1));
          - console.log(arrList.at(1));
      3. concat()
        - 用来连接两个或者多个数组
        demo :
          - const arr2 = [5,6,7]
            const arr3 = [8,9]
            const arr4 = arrList.concat(arr2,arr3)
            console.log(arr4);
      4. indexof()
        - 获取元素在数组中第一次出现的位置
        - 第一个参数是要获取的元素,第二个参数是开始查询的索引值(默认为0)
      5. join()
        - 将数组中的元素拼接成字符串,形参可以选择元素之间连接方式(默认是逗号)
        demo :
          - const result = arrList.join('@-@')
            console.log(result);
      6. slice()
        - 用于截取数组部分元素项
        - 第一个参数表示截取起始索引(包含该位置)
        - 第二个参数表示截取结束索引(不包括该位置)
          - 如果不填写第二个参数,则会从起始位置开始一直截取到数组最后一个元素
        - 如果一个参数都不写,则表示对数组进行浅拷贝
          - 拷贝必须要产生新的对象
          - 简单数据类型不存在浅拷贝和深拷贝之分,只有拷贝;对象才存在浅拷贝和深拷贝
          数组浅拷贝方法 : const arrList = [{name:'胡'},{name:'魏'},{name:'张'}]
            - 1. const arr1List = arrList.slice()
            - 2. const arr1List = [...arrList]
          对象浅拷贝方法 ： const arrInfo = {}
            - 1. const arr2Info = {...arrInfo}
            - 2. const arr2Info = Object.assign({},arr1Info)
          数组/对象深拷贝方法 : const arrList = [{name:'胡'},{name:'魏'},{name:'张'}]
            - 1. JSON.parse(JSON.stringify(arrList))
            - 2. structuredClone(arrList)
    */
   
  </script>
</body>
</html>